#! python3
# 编写一个程序，在一个文件夹中，找到所有带指定前缀的文件，诸如 spam001.txt,
# spam003.txt 等，并定位缺失的编号（例如存在 spam001.txt 和 spam007.txt，但不存在 spam003.txt）。
# 让该程序对所有后面的文件改名，消除缺失的编号。
# 作为附加的挑战，编写另一个程序，在一些连续编号的文件中，空出一些编号，以便加入新的文件。

# ./file/test/test.zip中保存了可用于测试的txt文件
# ./chp9_base3.py可以恢复./file/test目录为测试初始状态

import os
import shutil

path = '.\\file\\test\\'
files = os.listdir(path)
num = 1
for file in files:
    if file.startswith('spam') and file.endswith('.txt'):
        newFilename = 'spam'+str(num).rjust(3, '0')+'.txt'
        print("原文件名：" + file + ", 新文件名："+newFilename)

        # 如果在目录中找不到新文件名，则将原文件名变更为新文件名
        if not os.path.exists(os.path.join(path, newFilename)):
            shutil.move(os.path.join(path, file), os.path.join(path, newFilename))
        else:
            pass
        num += 1

